#ifndef GAMELINE_H
#define GAMELINE_H

#include <vector>

#include "move.h";

// class to hold info on previous game status of each move made
// e.g. to take back a move or the entire game
class GameLine
{
public:
    GameLine();

public:
    size_t plyAhead;

    std::vector<Move> gameMove;

    // board additional status
    std::vector<bool> sideToMove;
    std::vector<int> enPassantSquare;
    std::vector<bool> wCanCastle00;
    std::vector<bool> wCanCastle000;
    std::vector<bool> bCanCastle00;
    std::vector<bool> bCanCastle000;

    void init(size_t, int);

    // finally we could add the complete board info, yet we should be always able to get it from
    // current move, going back or forth in moves
    //...
};

#endif // GAMELINE_H
